Database management system users occasionally request support to improve the performance of queries on their database. In order to handle such user complaints, support engineers frequently need to study specific queries on the database and to recreate the problem scenario, which in turn requires access to the production data. However, while the users can share the queries, the database schema, and the runtime performance statistics, the production data is often confidential and cannot be accessed. Appropriate data must thus be synthesized which mimic the performance of the queries on the original data.
Approaches for synthesizing the data exist. However, when processing complex queries where there may be multiple constraints that must be satisfied simultaneously, these approaches require significant trial and error and consume valuable time and effort. Further, many of these approaches, although able to process tree-shaped query plans, are not capable of processing query plans represented by direct acyclic graphs (DAGs).